﻿using System.Collections.Generic;
using System.Threading.Tasks;
using AyuBookmark.Common.Models;

namespace AyuBookmark.Common.Interfaces
{
    /// <summary>
    /// 通知服务接口
    /// </summary>
    public interface INotificationService
    {
        /// <summary>
        /// 发送通知
        /// </summary>
        Task SendAsync(Notification notification);

        /// <summary>
        /// 获取用户未读通知
        /// </summary>
        Task<List<Notification>> GetUnreadNotificationsAsync(int userId);

        /// <summary>
        /// 标记通知为已读
        /// </summary>
        Task MarkAsReadAsync(int notificationId);

        /// <summary>
        /// 获取用户所有通知
        /// </summary>
        /*Task<List<Notification>>*/
        Task<PaginatedResult<Notification>> GetAllNotificationsAsync(int userId, int pageIndex = 1, int pageSize = 20);

        /// <summary>
        /// 获取用户所有通知（分页）
        /// </summary>
        Task<PaginatedResult<Notification>> GetPagedNotificationsAsync(
            int userId,
            int pageIndex = 1,
            int pageSize = 20);

    }
}